#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <vector>
//#include <cstring>
//#include <algorithm>
//using namespace std;
//typedef long long LL;
//LL n, m;
//vector<int> nums(100010);
//LL a[100010];
//LL b[100010];
//int main()
//{
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++)
//    {
//        scanf("%d", &nums[i]);
//    }
//    for (int i = 0; i < n; i++)
//    {
//        a[i + 1] = a[i] + nums[i];
//    }
//    sort(nums.begin(), nums.begin() + n);
//    for (int i = 0; i < n; i++)
//    {
//        b[i + 1] = b[i] + nums[i];
//    }
//
//
//    scanf("%d", &m);
//    int x, l, r;
//    for (int i = 0; i < m; i++)
//    {
//        scanf("%d %d %d", &x, &l, &r);
//        if (x == 1)
//        {
//            cout << a[r] - a[l - 1] << endl;
//        }
//        else
//        {
//            cout << b[r] - b[l - 1] << endl;
//        }
//    }
//    return 0;
//
//}

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n, a[1010];
int main()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        scanf("%d", &a[i]);

    }
    int l=0, r=0;
    for (int i = 1; i <= n; i++)
    {
        if (a[i] != i && l == 0)
            l = i;
        if (a[i] != i)
            r = i;
    }
    for (int i = l, j = r; i <= j; i++, j--)
    {
        swap(a[i], a[j]);
    }
    for (int i = 1; i <= n; i++)
    {
        if (a[i] != i)
        {
            puts("0 0");
            return 0;
        }
          
    }
    cout << l << " " << r << endl;
    return 0;
}